#pragma once

#include <vector>
#include <map>
#include <string>
#include <deque>
using namespace std;


typedef struct _QuoteState
{
	double Quote;
	long   QuoteQty;
	long   QuoteCnt;
} QuoteState;

typedef struct _QuoteInfo
{
	QuoteState BuyQ[5];
	QuoteState SellQ[5];
	long TotalSellQouteQty;
	long TotalBuyQuoteQty;
	long TotalSellQuoteCnt;
	long TotalBuyQuoteCnt;
} QuoteInfo;

typedef struct _PriceInfo
{
	double O;
	double H;
	double L;
	double C;
	double Change;
	long   V;
} PriceInfo;

typedef struct _TickInfo
{
	double Time;
	long LSType;
	double Price;
	double Volume;
	double AccVolume;
	double OpenInterest;
	CString oleTime;
}TickInfo;



class CSymbolInfo
{
public:
	CSymbolInfo();
	~CSymbolInfo();

	wstring   m_Code;
	QuoteInfo m_QuoteInfo;
	PriceInfo m_PriceInfo;
	TickInfo  m_TickInfo;
};

typedef vector<CSymbolInfo*> vectorSymbolInfo;
typedef map<wstring, CSymbolInfo*> mapSymbolInfo;
typedef pair<wstring, CSymbolInfo*> pairSymbolInfo;
typedef map< wstring, CSymbolInfo* >::iterator SymbolInfoPos;
typedef deque<TickInfo> dequeTickInfo;
typedef deque<TickInfo>::iterator itTickInfo;
typedef deque<TickInfo>::reverse_iterator ritTickInfo;

